/*
 * Auto generated C++ header for Mass Effect 2.
 *	by _silencer.
 */

#ifndef UNREAL_SDK_GAME_OnlineSubsystemPC_H
#define UNREAL_SDK_GAME_OnlineSubsystemPC_H

#include "unreal_game_global.h"

namespace game
{
	using namespace unreal;

	class OnlineSubsystemPC: public OnlineSubsystemCommonImpl
	{
		DECLARE_PACKAGE_CLASS( OnlineSubsystemPC, OnlineSubsystemCommonImpl, OnlineSubsystemPC )

	public:

		String LoggedInPlayerName; //offset = 156, size = 12
		UniqueNetId LoggedInPlayerId; //offset = 168, size = 8
		Array<Pointer> AsyncTasks; //offset = 176, size = 12
		String ProfileDataDirectory; //offset = 188, size = 12
		String ProfileDataExtension; //offset = 200, size = 12
		Array<ReadProfileSettingsDelegates> ReadProfileSettingsDelegates; //offset = 212, size = 12
		Array<WriteProfileSettingsDelegates> WriteProfileSettingsDelegates; //offset = 224, size = 12
		OnlineProfileSettings* CachedProfile; //offset = 236, size = 4
		Array<SpeechRecognitionCompleteDelegates> SpeechRecognitionCompleteDelegates; //offset = 240, size = 12
		Array<ReadFriendsDelegates> ReadFriendsDelegates; //offset = 252, size = 12
		Array<FriendsChangeDelegates> FriendsChangeDelegates; //offset = 264, size = 12
		Array<MutingChangeDelegates> MutingChangeDelegates; //offset = 276, size = 12
		__OnLoginChange__Delegate __OnLoginChange__Delegate; //offset = 288, size = 12
		__OnLoginCancelled__Delegate __OnLoginCancelled__Delegate; //offset = 300, size = 12
		__OnMutingChange__Delegate __OnMutingChange__Delegate; //offset = 312, size = 12
		__OnFriendsChange__Delegate __OnFriendsChange__Delegate; //offset = 324, size = 12
		__OnLoginFailed__Delegate __OnLoginFailed__Delegate; //offset = 336, size = 12
		__OnLogoutCompleted__Delegate __OnLogoutCompleted__Delegate; //offset = 348, size = 12
		__OnReadProfileSettingsComplete__Delegate __OnReadProfileSettingsComplete__Delegate; //offset = 360, size = 12
		__OnWriteProfileSettingsComplete__Delegate __OnWriteProfileSettingsComplete__Delegate; //offset = 372, size = 12
		__OnReadFriendsComplete__Delegate __OnReadFriendsComplete__Delegate; //offset = 384, size = 12
		__OnPlayerTalking__Delegate __OnPlayerTalking__Delegate; //offset = 396, size = 12
		__OnRecognitionComplete__Delegate __OnRecognitionComplete__Delegate; //offset = 408, size = 12
		__OnReadOnlineStatsComplete__Delegate __OnReadOnlineStatsComplete__Delegate; //offset = 420, size = 12
		__OnFlushOnlineStatsComplete__Delegate __OnFlushOnlineStatsComplete__Delegate; //offset = 432, size = 12
		__OnRegisterHostStatGuidComplete__Delegate __OnRegisterHostStatGuidComplete__Delegate; //offset = 444, size = 12
		__OnLinkStatusChange__Delegate __OnLinkStatusChange__Delegate; //offset = 456, size = 12
		__OnExternalUIChange__Delegate __OnExternalUIChange__Delegate; //offset = 468, size = 12
		__OnControllerChange__Delegate __OnControllerChange__Delegate; //offset = 480, size = 12
		__OnConnectionStatusChange__Delegate __OnConnectionStatusChange__Delegate; //offset = 492, size = 12
		__OnStorageDeviceChange__Delegate __OnStorageDeviceChange__Delegate; //offset = 504, size = 12
		__OnKeyboardInputComplete__Delegate __OnKeyboardInputComplete__Delegate; //offset = 516, size = 12
		__OnAddFriendByNameComplete__Delegate __OnAddFriendByNameComplete__Delegate; //offset = 528, size = 12
		__OnFriendInviteReceived__Delegate __OnFriendInviteReceived__Delegate; //offset = 540, size = 12
		__OnReceivedGameInvite__Delegate __OnReceivedGameInvite__Delegate; //offset = 552, size = 12
		__OnJoinFriendGameComplete__Delegate __OnJoinFriendGameComplete__Delegate; //offset = 564, size = 12
		__OnFriendMessageReceived__Delegate __OnFriendMessageReceived__Delegate; //offset = 576, size = 12

		Bool DeleteMessage( Byte LocalUserNum, Int MessageIndex );
		Bool UnmuteAll( Byte LocalUserNum );
		Bool MuteAll( Byte LocalUserNum, Bool bAllowFriends );
		void ClearFriendMessageReceivedDelegate( Byte LocalUserNum, MessageDelegate MessageDelegate );
		void AddFriendMessageReceivedDelegate( Byte LocalUserNum, MessageDelegate MessageDelegate );
		void OnFriendMessageReceived( Byte LocalUserNum, UniqueNetId SendingPlayer, String SendingNick, String Message );
		void GetFriendMessages( Byte LocalUserNum, Array<OnlineFriendMessage> FriendMessages );
		void ClearJoinFriendGameCompleteDelegate( JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate );
		void AddJoinFriendGameCompleteDelegate( JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate );
		void OnJoinFriendGameComplete( Bool bWasSuccessful );
		Bool JoinFriendGame( Byte LocalUserNum, UniqueNetId Friend );
		void ClearReceivedGameInviteDelegate( Byte LocalUserNum, ReceivedGameInviteDelegate ReceivedGameInviteDelegate );
		void AddReceivedGameInviteDelegate( Byte LocalUserNum, ReceivedGameInviteDelegate ReceivedGameInviteDelegate );
		void OnReceivedGameInvite( Byte LocalUserNum, String InviterName );
		Bool SendGameInviteToFriends( Byte LocalUserNum, Array<UniqueNetId> Friends, String Text );
		Bool SendGameInviteToFriend( Byte LocalUserNum, UniqueNetId Friend, String Text );
		Bool SendMessageToFriend( Byte LocalUserNum, UniqueNetId Friend, String Message );
		void ClearFriendInviteReceivedDelegate( Byte LocalUserNum, InviteDelegate InviteDelegate );
		void AddFriendInviteReceivedDelegate( Byte LocalUserNum, InviteDelegate InviteDelegate );
		void OnFriendInviteReceived( Byte LocalUserNum, UniqueNetId RequestingPlayer, String RequestingNick, String Message );
		Bool RemoveFriend( Byte LocalUserNum, UniqueNetId FormerFriend );
		Bool DenyFriendInvite( Byte LocalUserNum, UniqueNetId RequestingPlayer );
		Bool AcceptFriendInvite( Byte LocalUserNum, UniqueNetId RequestingPlayer );
		void ClearAddFriendByNameCompleteDelegate( Byte LocalUserNum, FriendDelegate FriendDelegate );
		void AddAddFriendByNameCompleteDelegate( Byte LocalUserNum, FriendDelegate FriendDelegate );
		void OnAddFriendByNameComplete( Bool bWasSuccessful );
		Bool AddFriendByName( Byte LocalUserNum, String FriendName, String Message );
		Bool AddFriend( Byte LocalUserNum, UniqueNetId NewFriend, String Message );
		void OnKeyboardInputComplete( Bool bWasSuccessful );
		String GetKeyboardInputResults( Byte bWasCanceled );
		void ClearKeyboardInputDoneDelegate( InputDelegate InputDelegate );
		void AddKeyboardInputDoneDelegate( InputDelegate InputDelegate );
		Bool ShowKeyboardUI( Byte LocalUserNum, String TitleText, String DescriptionText, Bool bIsPassword, Bool bShouldValidate, String DefaultText, Int MaxResultLength );
		void SetOnlineStatus( Byte LocalUserNum, Int StatusId, Array<LocalizedStringSetting> LocalizedStringSettings, Array<SettingsProperty> Properties );
		void ClearStorageDeviceChangeDelegate( StorageDeviceChangeDelegate StorageDeviceChangeDelegate );
		void AddStorageDeviceChangeDelegate( StorageDeviceChangeDelegate StorageDeviceChangeDelegate );
		void OnStorageDeviceChange();
		Byte GetNATType();
		void ClearConnectionStatusChangeDelegate( ConnectionStatusDelegate ConnectionStatusDelegate );
		void AddConnectionStatusChangeDelegate( ConnectionStatusDelegate ConnectionStatusDelegate );
		void OnConnectionStatusChange( Byte ConnectionStatus );
		Bool IsControllerConnected( Int ControllerId );
		void ClearControllerChangeDelegate( ControllerChangeDelegate ControllerChangeDelegate );
		void AddControllerChangeDelegate( ControllerChangeDelegate ControllerChangeDelegate );
		void OnControllerChange( Int ControllerId, Bool bIsConnected );
		void SetNetworkNotificationPosition( Byte NewPos );
		Byte GetNetworkNotificationPosition();
		void ClearExternalUIChangeDelegate( ExternalUIDelegate ExternalUIDelegate );
		void AddExternalUIChangeDelegate( ExternalUIDelegate ExternalUIDelegate );
		void OnExternalUIChange( Bool bIsOpening );
		void ClearLinkStatusChangeDelegate( LinkStatusDelegate LinkStatusDelegate );
		void AddLinkStatusChangeDelegate( LinkStatusDelegate LinkStatusDelegate );
		void OnLinkStatusChange( Bool bIsConnected );
		Bool HasLinkConnection();
		UniqueNetId GetPlayerUniqueNetIdFromIndex( Int UserIndex, UniqueNetId Zero );
		String GetPlayerNicknameFromIndex( Int UserIndex );
		Bool RegisterStatGuid( UniqueNetId PlayerID, String ClientStatGuid );
		String GetClientStatGuid();
		void ClearRegisterHostStatGuidCompleteDelegateDelegate( RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate );
		void AddRegisterHostStatGuidCompleteDelegate( RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate );
		void OnRegisterHostStatGuidComplete( Bool bWasSuccessful );
		Bool RegisterHostStatGuid( String HostStatGuid );
		String GetHostStatGuid();
		Bool WriteOnlinePlayerScores( Array<OnlinePlayerScore> PlayerScores );
		void ClearFlushOnlineStatsCompleteDelegate( FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate );
		void AddFlushOnlineStatsCompleteDelegate( FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate );
		void OnFlushOnlineStatsComplete( Bool bWasSuccessful );
		Bool FlushOnlineStats();
		Bool WriteOnlineStats( UniqueNetId Player, OnlineStatsWrite* StatsWrite );
		void FreeStats( OnlineStatsRead* StatsRead );
		void OnReadOnlineStatsComplete( Bool bWasSuccessful );
		void ClearReadOnlineStatsCompleteDelegate( ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate );
		void AddReadOnlineStatsCompleteDelegate( ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate );
		Bool ReadOnlineStatsByRankAroundPlayer( Byte LocalUserNum, OnlineStatsRead* StatsRead, Int NumRows );
		Bool ReadOnlineStatsByRank( OnlineStatsRead* StatsRead, Int StartIndex, Int NumToRead );
		Bool ReadOnlineStatsForFriends( Byte LocalUserNum, OnlineStatsRead* StatsRead );
		Bool ReadOnlineStats( Array<UniqueNetId> Players, OnlineStatsRead* StatsRead );
		Bool SetSpeechRecognitionObject( Byte LocalUserNum, SpeechRecognition* SpeechRecogObj );
		Bool SelectVocabulary( Byte LocalUserNum, Int VocabularyId );
		void ClearRecognitionCompleteDelegate( Byte LocalUserNum, RecognitionDelegate RecognitionDelegate, Int RemoveIndex );
		void AddRecognitionCompleteDelegate( Byte LocalUserNum, RecognitionDelegate RecognitionDelegate );
		void OnRecognitionComplete();
		Bool GetRecognitionResults( Byte LocalUserNum, Array<SpeechRecognizedWord> Words );
		Bool StopSpeechRecognition( Byte LocalUserNum );
		Bool StartSpeechRecognition( Byte LocalUserNum );
		void StopNetworkedVoice( Byte LocalUserNum );
		void StartNetworkedVoice( Byte LocalUserNum );
		void ClearPlayerTalkingDelegate( TalkerDelegate TalkerDelegate );
		void AddPlayerTalkingDelegate( TalkerDelegate TalkerDelegate );
		void OnPlayerTalking( UniqueNetId Player );
		Bool UnmuteRemoteTalker( Byte LocalUserNum, UniqueNetId PlayerID );
		Bool MuteRemoteTalker( Byte LocalUserNum, UniqueNetId PlayerID );
		Bool SetRemoteTalkerPriority( Byte LocalUserNum, UniqueNetId PlayerID, Int Priority );
		Bool IsHeadsetPresent( Byte LocalUserNum );
		Bool IsRemotePlayerTalking( UniqueNetId PlayerID );
		Bool IsLocalPlayerTalking( Byte LocalUserNum );
		Bool UnregisterRemoteTalker( UniqueNetId PlayerID );
		Bool RegisterRemoteTalker( UniqueNetId PlayerID );
		Bool UnregisterLocalTalker( Byte LocalUserNum );
		Bool RegisterLocalTalker( Byte LocalUserNum );
		Byte GetFriendsList( Byte LocalUserNum, Array<OnlineFriend> Friends, Int Count, Int StartingAt );
		void ClearReadFriendsCompleteDelegate( Byte LocalUserNum, ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate, Int RemoveIndex );
		void AddReadFriendsCompleteDelegate( Byte LocalUserNum, ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate );
		void OnReadFriendsComplete( Bool bWasSuccessful );
		Bool ReadFriendsList( Byte LocalUserNum, Int Count, Int StartingAt );
		void ClearWriteProfileSettingsCompleteDelegate( Byte LocalUserNum, WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate, Int RemoveIndex );
		void AddWriteProfileSettingsCompleteDelegate( Byte LocalUserNum, WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate );
		void OnWriteProfileSettingsComplete( Byte LocalUserNum, Bool bWasSuccessful );
		Bool WriteProfileSettings( Byte LocalUserNum, OnlineProfileSettings* ProfileSettings );
		OnlineProfileSettings* GetProfileSettings( Byte LocalUserNum );
		void ClearReadProfileSettingsCompleteDelegate( Byte LocalUserNum, ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate, Int RemoveIndex );
		void AddReadProfileSettingsCompleteDelegate( Byte LocalUserNum, ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate );
		void OnReadProfileSettingsComplete( Byte LocalUserNum, Bool bWasSuccessful );
		Bool ReadProfileSettings( Byte LocalUserNum, OnlineProfileSettings* ProfileSettings );
		void ClearFriendsChangeDelegate( Byte LocalUserNum, FriendsDelegate FriendsDelegate, Int RemoveIndex );
		void AddFriendsChangeDelegate( Byte LocalUserNum, FriendsDelegate FriendsDelegate );
		void ClearMutingChangeDelegate( MutingDelegate MutingDelegate, Int RemoveIndex );
		void AddMutingChangeDelegate( MutingDelegate MutingDelegate );
		void ClearLoginCancelledDelegate( CancelledDelegate CancelledDelegate );
		void AddLoginCancelledDelegate( CancelledDelegate CancelledDelegate );
		void ClearLoginChangeDelegate( LoginDelegate LoginDelegate, Byte LocalUserNum );
		void AddLoginChangeDelegate( LoginDelegate LoginDelegate, Byte LocalUserNum );
		Bool ShowFriendsUI( Byte LocalUserNum );
		Bool IsMuted( Byte LocalUserNum, UniqueNetId PlayerID );
		Bool AreAnyFriends( Byte LocalUserNum, Array<FriendsQuery> Query );
		Bool IsFriend( Byte LocalUserNum, UniqueNetId PlayerID );
		Byte CanShowPresenceInformation( Byte LocalUserNum );
		Byte CanViewPlayerProfiles( Byte LocalUserNum );
		Byte CanPurchaseContent( Byte LocalUserNum );
		Byte CanDownloadUserContent( Byte LocalUserNum );
		Byte CanCommunicate( Byte LocalUserNum );
		Byte CanPlayOnline( Byte LocalUserNum );
		String GetPlayerNickname( Byte LocalUserNum );
		Bool GetUniquePlayerId( Byte LocalUserNum, UniqueNetId PlayerID );
		Byte GetLoginStatus( Byte LocalUserNum );
		void ClearLogoutCompletedDelegate( Byte LocalUserNum, LogoutDelegate LogoutDelegate );
		void AddLogoutCompletedDelegate( Byte LocalUserNum, LogoutDelegate LogoutDelegate );
		void OnLogoutCompleted( Bool bWasSuccessful );
		Bool Logout( Byte LocalUserNum );
		void ClearLoginFailedDelegate( Byte LocalUserNum, LoginDelegate LoginDelegate );
		void AddLoginFailedDelegate( Byte LocalUserNum, LoginDelegate LoginDelegate );
		void OnLoginFailed( Byte LocalUserNum, Byte ErrorCode );
		Bool AutoLogin();
		Bool Login( Byte LocalUserNum, String LoginName, String Password, Bool bWantsLocalOnly );
		Bool ShowLoginUI( Bool bShowOnlineOnly );
		void OnFriendsChange();
		void OnMutingChange();
		void OnLoginCancelled();
		void OnLoginChange();
		Bool Init();
	};
}

#endif
